package la.iok.hzsvn.lewin.movie.cloud.mapper;

import la.iok.hzsvn.lewin.movie.cloud.entity.Room;
import la.iok.hzsvn.lewin.mybatis.mapper.BaseMapper;
import la.iok.hzsvn.share.annotations.NotNull;

import java.util.Collection;
import java.util.Date;
import java.util.List;

public interface RoomMapper extends BaseMapper<Room> {
    /**
     * 查询组织下的房间,可以根据房间名称模糊过滤
     * @param orgUnitIds 组织id列表,可能为null，表示所有组织的房间，否则非空,表示只查询指定组织的房间
     * @param name 组织名称,模糊查询
     * @return 房间列表
     */
    List<Room> list(Collection<Long> orgUnitIds, String name);

    /**
     * 修改房间的级别
     * @param id 房间id
     * @param version 房间版本
     * @param level 房间级别,值为0或者1
     * @param expireTime 房间级别的过期时间
     * @return 受影响的记录数。如果成功修改返回1,或者返回0
     */
    int updateLevel(@NotNull Long id, @NotNull Long version, int level, @NotNull Date expireTime);
}
